// Copyright 2022 a.o.smith ALL Rights Reserved
package com.liuxinlong.modules.dao;

import java.util.List;

import com.liuxinlong.modules.entity.RoleRight;
import com.baomidou.mybatisplus.service.IService;

/**
 * 角色权限dao接口
 *
 * @author liuxinlong@hotwater.com.cn
 * @version 1.0.0
 * @since 2022年2月15日
 */
public interface RoleRightDao extends IService<RoleRight> {
    /**
     * 查询角色权限树
     *
     * @param roleId 角色id
     * @return 角色权限树
     */
    List<RoleRight> queryRoleRightList(String roleId);

    /**
     * 删除角色权限
     *
     * @param roleId 角色id
     */
    void deleteByRoleId(String roleId);

    /**
     * 批量新增用户角色权限
     *
     * @param roleRightList 用户角色权限列表
     */
    void batchAddRoleRight(List<RoleRight> roleRightList);

    /**
     * 用户角色权限
     *
     * @param roleIdList 角色id列表
     * @param url    菜单路径
     * @return 权限数据
     */
    List<RoleRight> queryRoleRightInfo(List<String> roleIdList, String url);

    /**
     * 查询用户角色权限树
     *
     * @param userId 用户id
     * @return 角色权限树
     */
    List<RoleRight> queryUserRoleRightList(String userId);

    /**
     * 查询菜单角色
     *
     * @param menuId 菜单id
     * @return 菜单角色
     */
    List<RoleRight> queryRoleByMenu(String menuId);

    /**
     * 根据用户id，菜单权限码获取角色权限数据
     *
     * @param userId 用户id
     * @param rightCode 菜单权限码
     * @return 角色权限数据
     */
    List<RoleRight> queryUserMenuRight(String userId,String rightCode);
}
